import Order from '@/types/entity/Order'
import type OrderDetail from '@/types/entity/OrderDetail'
import type { RiderLocation } from './user-sse'

export class CreateOrderComplete {
  /**
   * 订单的id
   */
  orderId: number

  /**
   * 订单支付超时时间
   */
  payTimeoutTime: string

  /**
   * 订单号
   */
  orderNo: string

  /**
   * 支付金额
   */
  paymentAmount: number

  // 暂未接入支付 ...
}

export class OrderInfo extends Order {
  /**
   * 订单明细表
   */
  orderDetailList: OrderDetail[]
  /**
   * 配送地址
   */
  deliveryAddress: string
  /**
   * 商家联系电话
   */
  shopPhone: string
}
class OrderDishBaseInfo {
  /**
   * 菜品id
   */
  public dishId: number

  /**
   * 商品名称
   */
  public name: string

  /**
   * 商品图片路径
   */
  public image: string
}

export class OrderForUser extends Order {
  dishList: OrderDishBaseInfo[]
}

/**
 * 订单详细信息（评价页需要）
 *
 * @author zhuangjie
 * @date 2023/12/18
 */
export class OrderDetailForEvaluate {
  /**
   * 菜id
   */
  dishId: number

  /**
   * 菜品图片
   */
  image: string
  /**
   * 菜品名称
   */
  name: string
  /**
   * 赞1踩0(前端参数)
   */
  sentiment?: number
}

/**
 * 用户订单地图展示的店铺信息
 *
 * @author zhuangjie
 * @date 2024/04/05
 */
export class ShopForUserOrderMap {
  /** 店铺logo */
  public logo: string

  /** 店铺名称 */
  public name: string

  /** 店铺纬度 */
  public latitude: number

  /** 店铺经度 */
  public longitude: number

  /** 店铺地址 */
  public address: string

  /**手机号码 */
  public phone: string
}
/**
 * 用户查看订单（地图方式）的配送信息
 */
export class DeliveryOrderForUserOrderMap {
  /** 骑手id */
  public riderId: number

  /** 配送状态 */
  public deliveryState: number

  /** 骑手电话 */
  public riderPhone: string
}
/**
 * 地图展示订单
 *
 * @author zhuangjie
 * @date 2024/04/05
 */
export class OrderForMapShow {
  /** 订单id */
  public id: number

  /** 用户id */
  public userId: number

  /** 商店id */
  public shopId: number

  /** 订单号 */
  public orderNo: string

  /** 订单状态 */
  public state: number

  /** 订单备注 */
  public remark: string

  /** 接收方式 */
  public receivingMethod: string

  /** 配送方式 */
  public deliveryMethod: number

  /** 配送地址 */
  public deliveryAddress: string

  /** 收货人纬度 */
  public consigneeLatitude: number

  /** 收货人经度 */
  public consigneeLongitude: number

  /** 取餐码 */
  public code: string

  /** 预计/实际送达时间 */
  public estimatedDeliveryTime: string

  /** 当前进行中的配送/自提的订单数 */
  public currentDeliveryAndSelfPickupOrderCount: number

  /** 订单商店信息 */
  public shopForUserOrderMap: ShopForUserOrderMap

  /** 订单配送信息 */
  public deliveryOrderForUserOrderMap: DeliveryOrderForUserOrderMap

  /** 骑手位置 */
  public riderLocation?: RiderLocation

  /** 订单数量 */
  public orderCount: number
}

/**
 * 用于用户地图订单展示
 *
 * @author zhuangjie
 * @date 2024/04/22
 */
export class UserMapOrder {
  /** 订单id */
  public orderId: number

  /** 商铺id */
  public shopId: number

  /** 商铺Logo */
  public shopLogo: string

  /** 商铺名 */
  public shopName: string

  /** 订单编码 */
  public code: string

  /** 支付时间 */
  public payTime: string

  /** 收货方式 */
  public receivingMethod: string
}

/**
 * 订单用于用户评价VO
 */
export class OrderForUserEvaluateVO {
  /** 订单id */
  public id: number

  /** 商铺id */
  public shopId: number

  /** 商铺名 */
  public shopName: string

  /** 商铺Logo */
  public shopLogo: string

  /** 收货方式-取货方式(1店食、2自提、3配送) */
  public receivingMethod: string

  /** 配送方式（1平台配送，2商家配送） */
  public deliveryMethod: number

  /** 订单详情列表，这里不展开，只写原类型 */
  public orderDetailList: OrderDetailForEvaluate[]
}
